package com.woniu.new_orange.util;


import org.springframework.stereotype.Service;

import java.util.regex.Pattern;

/**
 * @Program: new_orange->verify
 * @Description: 后端信息校验
 * @Author: donghang
 * @Date: 2023-02-03 14:06
 * @Version： 1.0
 **/

@Service
public class verifyImpl implements Verify {
    /**
     @description: 校验工具类
     /
     public class ValidatorUtil {
     /
     正则表达式：验证用户名
     */
    public  final String REGEX_USERNAME = "^[a-zA-Z]\\\\w{5,20}$";
    /**
     正则表达式：验证密码
     */
    public  final String REGEX_PASSWORD = "2{6,20}$";
    /**

     正则表达式：验证手机号
     */
    public  final String REGEX_MOBILE = "^(1[0-9])\\d{9}$";
    /**

     正则表达式：验证邮箱
     */
    public  final String REGEX_EMAIL = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
    /**

     正则表达式：验证汉字
     */
    public  final String REGEX_CHINESE = "3,{0,}$";
    /**

     正则表达式：验证身份证
     */
    public  final String REGEX_ID_CARD = "(^\\d{18}KaTeX parse error: Got function '\\newline' with no arguments as superscript at position 1: \\̲n̲e̲w̲l̲i̲n̲e̲)";
    /**

     正则表达式：验证URL
     */
     public  final String REGEX_URL = "http(s)//"+"";
     /**

     正则表达式：验证IP地址
     */
    public  final String REGEX_IP_ADDR = "(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)";
    /**

     校验用户名
     @param username
     @return 校验通过返回true，否则返回false
     */
    public  boolean isUsername(String username) {
        return Pattern.matches(REGEX_USERNAME, username);
    }
    /**

     校验密码
     @param password
     @return 校验通过返回true，否则返回false
     */
    public  boolean isPassword(String password) {
        return Pattern.matches(REGEX_PASSWORD, password);
    }
    /**

     校验手机号
     @param mobile
     @return 校验通过返回true，否则返回false
     */
    public  boolean isMobile(String mobile) {
        return Pattern.matches(REGEX_MOBILE, mobile);
    }
    /**

     校验邮箱
     @param email
     @return 校验通过返回true，否则返回false
     */
    public  boolean isEmail(String email) {
        return Pattern.matches(REGEX_EMAIL, email);
    }
    /**

     校验汉字
     @param chinese
     @return 校验通过返回true，否则返回false
     */
    public  boolean isChinese(String chinese) {
        return Pattern.matches(REGEX_CHINESE, chinese);
    }
    /**

     校验身份证
     @param idCard
     @return 校验通过返回true，否则返回false
     */
    public  boolean isIDCard(String idCard) {
        return Pattern.matches(REGEX_ID_CARD, idCard);
    }
    /**

     校验URL
     @param url
     @return 校验通过返回true，否则返回false
     */
    public  boolean isUrl(String url) {
        return Pattern.matches(REGEX_URL, url);
    }
    /**

     校验IP地址
     @param ipAddr
     @return
     */
    public  boolean isIPAddr(String ipAddr) {
        return Pattern.matches(REGEX_IP_ADDR, ipAddr);
    }
}



